import { request } from "../../request/index.js";
import regeneratorRuntime from '../../lib/runtime/runtime';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 左边菜单栏数据
    leftMenuList: [],
    // 右边内容数据
    rightContent: [],
    // 左侧菜单点击选中的那个item的下标
    currentIndex: 0,
    // scroll-view 向上滚动的位置
    scrollTop: 0
  },
  // 全局变量
  Cates: [],

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    /**
     * 需要对数据做缓存：
     * 1.从缓存里面那数据。
     *    web: localSotarge     
     *         localSotrage.setItem("key","value")  存到本地 
     *         localSotrage.getItem("key")   从本地获取
     *      
     *         存储的数据都是字符串类型，就是localSotrage，内部会调用toString方法，把数据
     *         统统变成string类型
     * 
     *    小程序： wx.setStorageSync("key", "value"); 存到本地 
     *            wx.getStorageSync("key");  从本地获取
     *            保存的是什么数据类型，就是什么数据类型，不改变数据类型
     * 
     * 
     * 
     * 2.如果缓存里面有数据并且 没有过期，就使用缓存数据
     *    1. {time:日期,data:{我们的数据}}
     * 3.如果有缓存但是过期了，或者没缓存，就要发送网络请求了
     */
    // 1.从缓存里面那数据
    let cates = wx.getStorageSync("cates");
    if (!cates) {
      //2 . 没有缓存 发网络请求
      this.getCatesList();
    } else {
      //  4.有缓存
      // console.log("有缓存");
      // 比如 20秒过期 
      if (Date.now() - cates.time > 1000 * 60 * 60 * 24 * 30) {
        //5. 数据已经过期 重新 发网络请拿那数据
        this.getCatesList();
      } else {
        //6. 数据没有过期
        this.Cates = cates.data;
        let leftMenuList = this.Cates.map(v => v.cat_name);
        let rightContent = this.Cates[0].children
        this.setData({
          leftMenuList,
          rightContent
        })
      }
    }
  },
  // 获取分类数据
  async getCatesList() {
    // request({url:'https://api-hmugo-web.itheima.net/api/public/v1/categories'})
    // .then(res=>{
    //   console.log(res);
    //   this.Cates=res.data.message;
    //   // 3.把获取的数据 保存在 缓存里面
    //   wx.setStorageSync("cates", {time:Date.now(),data:this.Cates});

    //   let leftMenuList = this.Cates.map(v=>v.cat_name); 
    //   let rightContent = this.Cates[0].children
    //   this.setData({
    //     leftMenuList,
    //     rightContent
    //   })

    // })

    // let res = await request({ url: 'https://api-hmugo-web.itheima.net/api/public/v1/categories' });
    let res = await request({ url: '/categories' });
    // this.Cates = res.data.message;
    this.Cates = res;
    // 3.把获取的数据 保存在 缓存里面
    wx.setStorageSync("cates", { time: Date.now(), data: this.Cates });

    let leftMenuList = this.Cates.map(v => v.cat_name);
    let rightContent = this.Cates[0].children
    this.setData({
      leftMenuList,
      rightContent
    })

  },
  // 左侧菜单点击事件
  handleLeftItem(e) {
    let { index } = e.currentTarget.dataset;
    // 右侧内容跟着改变
    let rightContent = this.Cates[index].children
    this.setData({
      currentIndex: index,
      rightContent,
      // 兼容低版本微信或者手机
      scrollTop: 0
    })
  }


})